//
// Description: 2293. 极大极小游戏
// Created by Loading on 2023/1/15.
//

#include <bits/stdc++.h>

using namespace std;

int minMaxGame(vector<int> &nums) {
    int n = nums.size();
    while (n > 1) {
        // 模拟并原地修改
        for (int i = 0; i < n / 2; ++i) {
            /* 奇偶性判断使用 i & 1 比 i % 2 具有更快的运行速度 */
            if (i & 1) {
                nums[i] = max(nums[i * 2], nums[i * 2 + 1]);
            } else {
                nums[i] = min(nums[i * 2], nums[i * 2 + 1]);
            }
        }
        n /= 2;
    }

    return nums[0];
}

int main() {
    vector<int> nums{1, 3, 5, 2, 4, 8, 2, 2};

    int res = minMaxGame(nums);

    cout << res << endl;

    return 0;
}